Three-Dimensional Offset-Printed Memory

ABSTRACT

The present invention discloses a three-dimensional offset-printed memory (3D-oP). Compared with a conventional three-dimensional mask-programmed read-only memory (3D-MPROM), it has a lower data-mask count and thereby a lower data-mask cost. The mask-patterns for different memory levels/bits-in-a-cell are merged onto a multi-region data-mask. At different printing steps, a wafer is offset by different values with respect to said data-mask. Accordingly, data-patterns are printed into different memory levels/bits-in-a-cell from a same data-mask.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application relates to a provisional application, “Three-Dimensional Offset-Printed Memory”, application Ser. No. 61/529,920, filed Sep. 1, 2011.

BACKGROUND

1. Technical Field of the Invention

The present invention relates to the field of integrated circuit, and more particularly to mask-programmed read-only memory (mask-ROM).

2. Prior Arts

Three-dimensional mask-programmed read-only memory (3D-MPROM) has the potential to replace DVD and Blu-Ray Discs. It is ideal for mass publication. U.S. Pat. No. 5,835,396 discloses a 3D-MPROM. It is a monolithic semiconductor memory. As illustrated in FIG. 1, a typical 3D-MPROM comprises a semiconductor substrate 0 and a 3-D stack 10 stacked above. The 3-D stack 10 comprises M(M≧2) vertically stacked memory levels (e.g. 10A, 10B). Each memory level (e.g. 10A) comprises a plurality of upper address lines (e.g. 2 a), lower address lines (e.g. 1 a) and memory cells (e.g. 5 aa). Each memory cell stores n (n≧1) bits. Memory levels (e.g. 10A, 10B) are coupled to the substrate 0 through contact vias (e.g. 1 av, 1 av′). The substrate circuit 0X in the substrate 0 comprises a peripheral circuit for the 3-D stack 10. Hereinafter, xMxn 3D-MPROM denotes a 3D-MPROM comprising M memory levels with n bits-per-cell (bpc).

3D-MPROM is a diode-based cross-point memory. Each memory cell (e.g. 5 aa) typically comprises a diode 3 d. The diode 3 d can be broadly interpreted as any device whose electrical resistance at the read voltage is lower than that when the applied voltage has a magnitude smaller than or polarity opposite to that of the read voltage. Each memory level (e.g. 10A) further comprises at least a data-coding layer (e.g. 6A). The pattern in the data-coding layer is a data-pattern and it represents the digital data stored in the data-coding layer. In this figure, the data-coding layer 6A is a blocking dielectric 3 b, which blocks the current flow between the upper and lower address lines. Absence or existence of a data-opening (e.g. 6 ca) in the blocking dielectric 3 b indicates the state of a memory cell (e.g. 5 ca).

In prior arts, data-patterns for different memory levels are transferred from separate data-masks. Pattern-transfer is also referred to as “print”, transfers a data pattern from a data-mask to a data-coding layer. Hereinafter, “mask” can be broadly interpreted as any apparatus that carries the source image of the data to be printed. FIGS. 2A-2B illustrate two prior-art data-masks 4A, 4B. Each data-mask (e.g. 4A) is comprised of an array of mask cells “aa”-“bd”. The mask-pattern (clear or dark) at each mask cell determines the existence or absence of a data-opening at the corresponding memory cell. For example, the mask-opening 4 ca on the data-mask 4A leads to a data-opening 6 ca at cell 5 ca of the memory level 10A; the mask-openings 4′aa, 4′da on the data-mask 4B lead to data-openings 6′aa, 6′da at cells 5′aa, 5′da of the memory level 10B.

To further increase storage density, 3D-MPROM can store n(n>1) bits-per-cell (bpc). U.S. patent application Ser. No. 12/785,621 discloses a large-bpc 3D-MPROM. As illustrated in FIG. 3, each memory cell (e.g. 5 aa) stores two bits: Bit-1 and Bit-2. Bit-1 is physically implemented by an extra implant, while Bit-2 is physically implemented by a resistive layer 3 r. Hereinafter, j-th bit-in-a-cell denotes the j-th bit stored in an n-bpc cell (n≧j). For example, the 1^(st) bit-in-a-cell in a 2-bpc cell is Bit-1; the 2^(nd) bit-in-a-cell in a 2-bpc cell is Bit-2.

In prior arts, the data-patterns for different bits-in-a-cell (e.g. Bit-1, Bit-2) are printed from separate data-masks. FIGS. 4A-4B illustrate two prior-art data-masks 4C, 4D. Each data-mask (e.g. 4C) is comprised of an array of mask cells “aa”-“bd”. The mask-pattern (clear or dark) at each mask cell determines the existence or absence of the extra implant or the resistive layer at the corresponding memory cell. For example, the mask-opening 4×a* on the data-mask 4C leads to the extra-implanted layer 3 i at cells 5 ca, 5 da; the mask-openings 4′ba*, 4′da* on the data-mask 4D lead to the removal of the resistive layer 3 r at cells 5 ba, 5 da.

Prior arts generally require M×n data-masks for an xMxn 3D-MPROM, because each memory level and each bit-in-a-cell need a separate data-mask. At 22 nm node, each data-mask costs ˜$250 k (hereinafter, k=1,000). Accordingly, the data-mask set of an x8x23D-MPROM, including 16 (=8×2) data-masks, will cost ˜$4 million. This high data-mask cost will hinder widespread applications of the 3D-MPROM. To lower the data-mask cost, the present invention discloses a three-dimensional offset-printed memory (3D-oP).

OBJECTS AND ADVANTAGES

It is a principle object of the present invention to provide a 3D-MPROM with a lower data-mask cost.

It is a further object of the present invention to provide a method to reduce the total number of data-masks of the 3D-MPROM.

In accordance with these and other objects of the present invention, a three-dimensional offset-printed memory (3D-oP) is disclosed.

SUMMARY OF THE INVENTION

The present invention discloses a three-dimensional offset-printed memory (3D-oP). 3D-oP is an improved 3D-MPROM. It records data with an offset-printing means. To realize offset-printing, the mask-patterns for a plurality of memory levels and/or bits-in-a-cell are merged onto a multi-region data-mask. At different printing steps, the wafer is offset by different values with respect to the multi-region data-mask. Accordingly, data-patterns are printed into data-coding layers for different memory levels/bits-in-a-cell from the same data-mask. Offset-printing lowers the total data-mask count and therefore, lowers the total data-mask cost.

In a 3D-oP batch, all dice are printed from the same data-masks. Although different dice may have different data-array sequence, all dice have a same data-array set. Here, a data-array is an array of digital values represented by a data-coding layer at each cell location; the data-array sequence is an ordered list of all data-arrays in a 3D-oP die, e.g. from the one closet to the substrate to the one farthest from the substrate; and a data-array set is a collection of all data-arrays in a 3D-oP die.

To make the difference in the data-array sequence transparent to users, 3D-oP preferably comprises a configurable-input/output (I/O) means. It changes inputs/outputs according to the data-array sequence of the 3D-oP die. Compared with a reference 3D-oP die, if the data-array sequence for two memory levels in a 3D-oP die of interest is reversed, the programmable-I/O changes at least a portion of its input address; if the data-array sequence for two bits-in-a-cell in this 3D-oP die is reversed, the programmable-I/O changes the bit-order of at least a portion of its output.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a cross-sectional view of a x2x1 3D-MPROM along the cut-line AA′ of FIGS. 2A-2B;

FIGS. 2A-2B disclose two data-masks for the x2x1 3D-MPROM in prior arts;

FIG. 3 is a cross-sectional view of a x1x2 3D-MPROM along the cut-line BB′ of FIGS. 4A-4B;

FIGS. 4A-4B disclose two data-masks for the x1x2 3D-MPROM in prior arts;

FIGS. 5A-5B illustrate the printing steps used in a preferred offset-printing means;

FIG. 6 discloses an exemplary multi-region data-mask;

FIGS. 7A-7B disclose the data-arrays m(1), m(2) represented by the two data-mask regions on the multi-region data-mask;

FIGS. 8A-8B are the cross-sectional views of two 3D-oP dice 18 a, 18 b from a preferred x2x1 3D-oP batch;

FIGS. 9A-9B disclose two data-arrays p_(18a)[1], p_(18a)[2] for the two memory levels 16A, 16B of the 3D-oP die 18 a;

FIGS. 10A-10B are the cross-sectional views of two dice 18 c, 18 d from a preferred x1x2 3D-oP batch;

FIGS. 11A-11B disclose two data-arrays p_(18c)[1,1], p_(18c)[1,2] for Bit-1, Bit-2 of the die 18 c;

FIG. 12 is a circuit block diagram of a preferred 3D-oP;

FIG. 13A is a circuit block diagram for the preferred x2x1 3D-oP; FIG. 13B is a circuit block diagram for the preferred x1x2 3D-oP;

FIG. 14 is a cross-sectional view of a preferred x2x2 3D-oP;

FIG. 15 illustrates a multi-region data-mask for the preferred x2x2 3D-oP and all dice in an exposure field;

FIG. 16 is a table listing each data-array in each die after each printing step for the preferred x2x2 3D-oP;

FIG. 17 is a circuit block diagram of the preferred x2x2 3D-oP;

FIG. 18 is a cross-sectional view of a preferred x3x3x1 3D²-oP;

FIG. 19 is a circuit block diagram of the preferred 3D²-oP;

FIG. 20 illustrates a multi-region data-mask for the preferred 3D²-oP and all dice in an exposure field;

FIG. 21 is a table listing each data-array in each die after each printing step for the preferred 3D²-oP;

FIG. 22 is a table listing three types of packages in a 3D²-oP batch.

It should be noted that all the drawings are schematic and not drawn to scale. Relative dimensions and proportions of parts of the device structures in the figures have been shown exaggerated or reduced in size for the sake of clarity and convenience in the drawings. The same reference symbols are generally used to refer to corresponding or similar features in the different embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Those of ordinary skills in the art will realize that the following description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons from an examination of the within disclosure.

In order to reduce the total number of data-masks, the present invention discloses a three-dimensional offset-printed memory (3D-oP). It records data with an offset-printing means. Offset-printing is a printing means. Major printing means includes photo-lithography and imprint-lithography (referring to the co-pending U.S. patent application Ser. No. 61/529,919, “Three-Dimensional Printed Memory”): photo-lithography uses data-masks to print data, whereas imprint-lithography uses data-templates (also referred to as master, stamp, or mold) to print data.

Referring now to FIGS. 5A-5B, an overview of the offset-printing means is disclosed. It uses a multi-region data-mask 8. In this example, this multi-region data-mask 8 comprises the mask-patterns for two different memory levels 16A, 16B. They are located in the data-mask regions 8 a, 8 b, respectively.

The preferred offset-printing means comprises two printing steps. At the 1st printing step (FIG. 5A, i.e. lithography A to code the first memory level 16A), the origin O_(18a) of the die 18 a is aligned to the origin OM of the data-mask region 8 a. During exposure E_(1a), the data-mask regions 8 a is printed to the data-coding layer 6A for the memory level 16A of the dice 18 a, while the data-mask regions 8 b is printed to the data-coding layer 6A for the memory level 16A of the dice 18 b.

At the 2^(nd) printing step (FIG. 5B, i.e. lithography B to code the second memory level 16B), the alignment position of the wafer 9 is offset by a value of Δ_(y) from its alignment position at the 1st printing step. Let d_(y) be the displacement between the dice 18 a and 18 b. If Δ_(y)=d_(y), the origin O_(18b) of the die 18 b is aligned to origin O_(M). During exposure E_(2a), the data-mask region 8 a is printed to the data-coding layer 6B for the memory level 16B of the die 18 b.

During the next exposure E_(2b), as long as the stepping distance D_(y) is twice the displacement d_(y) between adjacent dice, the data-mask region 8 b will be printed to the data-coding layer 6B for the memory level 16B of the die 18 a. Finally, on the finished wafer 9, in the die 18 a, the data-mask regions 8 a, 8 b are printed to the data-coding layers 6A, 6B for the memory levels 16A, 16B, respectively; while in the die 18 b, they are printed to the data-coding layers 6B, 6A for the memory levels 16B, 16A, respectively.

FIG. 6 discloses more details on an exemplary multi-region data-mask 8. Each of its data-mask regions 8 a, 8 b is comprised of an array of mask cells “aa”-“bd”. In the data-mask region 8 a, the clear mask-patterns at the mask cells “ca”, “bb”, “ab” form mask-openings 8 ca, 8 xb. In the data-mask region 8 b, the clear mask-patterns at the mask cells “aa”, “da”, “bb” form mask-openings 8 aa, 8 da, 8 bb. If the following convention is used: the dark mask-pattern represents ‘0’ and the clear mask-pattern represents ‘1’, the digital values represented by each mask cell in the data-mask region 8 a form a data-array m(1) (FIG. 7A), while the digital values represented by each mask cell in the data-mask region 8 b form a data-array m(2) (FIG. 7B).

Referring now to FIGS. 8A-8B, two dice 18 a, 18 b from a preferred x2x1 3D-oP batch are disclosed. In a 3D-oP batch, all dice are manufactured with the same mask set, and all dice have the same 3-D frame. Here, a 3-D frame comprises all address lines in the 3-D stack, but no data-coding layer. In this example, the data for both dice 18 a and 18 b are printed from the same data-mask 8. FIG. 8A discloses the x2x1 3-D stack 16 a of the die 18 a. The data-coding layer 6A of the memory level 16A is printed from the data-mask region 8 a, while the data-coding layer 6B of the memory level 16B is printed from the data-mask region 8 b. Here, the following convention is used: absence of a data-opening represents ‘0’ and existence of a data-opening represents ‘1’. Accordingly, in the 3D-oP die 18 a, the digital values stored in all memory cells in the memory level 16A form a data-array P_(18a)[1] of FIG. 9A; the digital values stored in all memory cells in the memory level 16B form a data-array p_(18a)[2] of FIG. 9B. It can observed that the data-array P_(18a)[1] is same as the mask data-array m(1) of FIG. 7A, i.e. p_(18a)[1]=m(1); and, the data-array p_(18a)[2] is same as the mask data-array m(2) of FIG. 7B, i.e. p_(18a)[2]=m(2).

On the other hand, FIG. 8B discloses the x2x1 3-D stack 16 b of the die 18 b. The data-coding layer 6A of the memory level 16A is printed from the data-mask region 8 b, while the data-coding layer 6B of the memory level 16B is printed from the data-mask region 8 a. Similarly, for die 18 b, p_(18a)[1]=m(2), p_(18a)[2]=m(1).

In a 3D-oP batch, an ordered list (e.g. from the one closet to the substrate to the one farthest from the substrate) of all data-arrays (including the arrays for all memory levels and all bits-in-a-cell) in each 3D-oP die forms a data-array sequence S. A collection of these data-arrays forms a data-array set. By definition, the value of a set is only related to its elements, not the order of these elements. For the dice 18 a, 18 b of FIGS. 8A-8B, their data-array sequence can be expressed as:

{S _(18a) }={p _(18a)[1], p _(18a)[2]}={m(1), m(2)};

{S _(18b) }={p _(18b)[1], p _(18b)[2]}={m(2), m(1)};

with {S_(18a)}={S_(18b)}, but S_(18a)≠S_(18b). It can be observed that, the data-array set of the die 18 a is same as that of the die 18 b, while the data-array sequence of the die 18 a is a reverse of that of the die 18 b. To access the same data, different memory level needs to be accessed in the die 18 b than that in the die 18 a.

Referring now to FIGS. 10A-10B, offset-printing can also be applied to the 3D-MPROM with n bits-per-cell (bpc). Similarly, the mask-patterns for two different bits-in-a-cell are merged onto a multi-region data-mask. At different printing steps, the wafer is offset by different values with respect to the multi-region data-mask. Accordingly, various data-patterns from the same data-mask are printed into data-coding layers for different bits-in-a-cell. Two x1x2 3D-oP dice 18 c, 18 d from a preferred 3D-oP batch are illustrated in FIG. 10A-10B.

FIG. 10A discloses an x1x2 3-D stack 16 c of die 18 c. Each memory cell (e.g. 5 aa) in the memory level 16A stores two bits: Bit-1 and Bit-2. Bit-1 is represented by a first data-coding layer 6C, i.e. an extra-implanted layer 3 i; Bit-2 is represented by a second data-coding layer 6D, i.e. a resistive layer 3 r. The data-coding layer 6C of Bit-1 is printed from the data-mask region 8 a, while the data-coding layer 6D of Bit-2 is printed from the data-mask region 8 b. Here, the following convention is used: existence of an extra implant represents ‘0’ and absence of an extra implant represents ‘1’; existence of the resistive layer represents ‘0’ and absence of the resistive layer represents ‘1’. Accordingly, in he first memory level 16C of the 3D-oP die 18 c, the digital values stored by Bit-1 form the data-array p_(18c)[1,1] of FIG. 11A; the digital values stored by Bit-2 form the data-array p_(18c)[1,2] of FIG. 11B. Here, p[i,j] means the data-array for j^(th)-bit-in-a-cell on the i^(st) memory level of the die 18 c. It can be observed that, the data-array p_(18c)[1,1] is opposite to the data-array m(1) of FIG. 7A, i.e. p_(18c)[1,1]=−m(1); the data-array p_(18c)[1,2] is equal to the data-array m(2) of FIG. 7B, i.e. p_(18c)[1,2]=−m(2). Here, the symbol “-” means ‘0’, ‘1’ are interchanged. Because the digital values in a data-array could change with definition, the polarity of the data-array has little meaning. In the present invention, two data-arrays are considered same if each bit in the first data-array and its corresponding bit in the second data-array have the same or opposite values.

On the other hand, FIG. 10B discloses an x1x2 3-D stack 16 d of die 18 d. In the first memory level 16C of the die 18 d, the data-coding layer 6C for Bit-1 is printed from the data-mask region 8 b, while the data-coding layer 6D for Bit-2 is printed from the data-mask region 8 a. Accordingly, for the die 18 d, p_(18d)[1,1]=−m(2), p_(18d)[1,2]=−m(1).

For the dice 18 c and 18 d of FIGS. 10A-10B, their data-array sequences can be expressed as:

S _(18c)=(p _(18c)[1,1], p _(18c)[1,2])=(−m(1), m(2));

S _(18d)=(p _(18c)[1,1], p _(18d)[1,2])=(−m(2), m(1));

with {S_(18c)}={S_(18d)}, but S_(18c)≠S_(18d). It can be observed that, the data-array set of the die 18 c is same as that of the die 18 d, while the data-array sequence of the die 18 c is a reverse of that of the die 18 d. For the same input address, the bit-order of the output needs to be reversed.

FIG. 12 is a circuit block diagram of a preferred 3D-oP 18. It comprises an xMxn 3-D stack 16 and a configurable-I/O means 24. The 3-D stack 16 comprises Mxn data-arrays. Here, the data-array for the j-th bit-in-a-cell in the i-th memory level is denoted by p[ij] (1≦i≦M, 1≦y≦n). The configurable-I/O means 24 comprises a sequence-memory 22, which stores the information related to the data-array sequence of this 3D-oP die. One example of the sequence-related information is chip ID. Chip ID is directly related to the location of the die on a wafer and can be used to extract the information related to its data-array sequence. The sequence-memory 22 is preferably an embedded non-volatile writable memory. For example, it may use direct-write memory, laser-programmable fuse and/or electrically-programmable memory. For the direct-write memory, the sequence-related information can be written during manufacturing. For the laser-programmable fuse, the sequence-related information can be written during or after manufacturing. For the electrically-programmable memory, the sequence-related information can be written after manufacturing.

The configurable-I/O means 24, based on the sequence-related information, changes the input of the external I/O 28 and/or the output of the internal I/O 26 in such a way that the external I/O 26 shows no dependence on the data-array sequence. In other words, all 3D-oPs in the same batch, even though they might have different data-array sequence, appear to have the same external I/O 28 for users. More details on the 3D-oP circuit are disclosed in FIGS. 13A-13B.

FIG. 13A is a circuit block diagram of the preferred x2x1 3D-oP 18 from FIGS. 8A-8B. The input-address decoder 201 is shown in this figure. The 3-D stack 16 stores two data-arrays p[1], p[2] for the memory levels 16A, 16B, respectively. Here, the notation of data-arrays is simplified to p[i] (1≦i≦M) for the 1-bpc 3D-oP (i.e. each 3D-oP cell stores one bit). The input-address decoder 201 decodes the internal input address 26. For example, if the most significant bit of the internal input address 26 is ‘0’, the data-array p[1] is accessed; otherwise p[2] is accessed. The configurable-I/O means 24 changes the value of the external input address 28 based on the sequence-related information: for the die 18 a, the internal input address 26 is same as the external input address 28; for the die 18 b, the most significant bit of the internal input address 26 is inverted from that of the external input address 28.

FIG. 13B is a circuit block diagram of the preferred x1x2 3D-oP 18 from FIGS. 10A-10B. The output buffer 200 is shown in this figure. The 3-D stack 16 stores two data-arrays p[1,1] and p[1,2] for Bit-1 and Bit-2. The output buffer 200 comprises a plurality of output-groups 21, 21′. . . . Each output-group stores outputs from all bits in a 3D-oP cell. For example, the output-group 21 comprises output-bits 21 a, 21 b, with the output-bit 21 a storing Bit-1 and the output-bit 21 b storing Bit-2, where Bit-1 and Bit-2 are from a same 3D-oP cell. The configurable-I/O means 24 changes the bit-order within each output-group 21 in the output buffer 200 based on the sequence-related information: for the die 18 c, the external output 28 is same as the internal output 26; for the die 18 d, the bit-order within each output-group (e.g. 21) is reversed.

The technique of offset-printing to different memory levels (FIGS. 8A-8B) can be combined with the technique of offset-printing to different bits-in-a-cell (FIGS. 10A-10B). To be more specific, the mask-patterns for different memory levels and different bits-in-a-cell are merged onto a multi-region data-mask. At different printing steps, the wafer is offset by different values with respect to the multi-region data-mask. Accordingly, various data-patterns from the same data-mask are printed into data-coding layers for different memory levels and different bits-in-a-cell. FIG. 14 illustrates an example. This preferred x2x2 3D-oP 18 e comprises two memory levels 16A, 16B with 2-bpc: Bit-1, Bit-2. There are a total of four data-coding layers. Their data-arrays are: p[1,1] for Bit-1 in memory level 16A; p[1,2] for Bit-2 in memory level 16A; p[2,1] for Bit-1 in memory level 16B; and p[2,2] for Bit-2 in memory level 16B.

The left side of FIG. 15 illustrates the multi-region data-mask 8 used for the preferred x2x2 3D-oP 18. It comprises four data-mask regions whose mask data-arrays are m(1)-m(4). The origin of the multi-region data-mask is O_(M). The right side of FIG. 15 illustrates all dice D[1]-D[4] in an exposure field E on a 3D-oP wafer 9. Their origins are O₁-O₄, respectively. Because these dice D[1]-D[4] are offset-printed with the same data-mask 8, they belong to the same 3D-oP batch.

FIG. 16 is a table listing the data-array for each data-coding layer of each die after each printing step for the preferred 2x2 3D-oP 18. Its third column lists the origin of the die to which O_(M) is aligned at each printing step. Four printing steps are required for four data-coding layers. At the 1^(st) printing step (i.e. for p[1,1]), O_(M) is aligned to the origin O₁ of the die D[1] and the data-arrays p[1,1] of dice D[1]-D[4] are equal to m(1)-m(4), respectively. At the 2^(nd) printing step (i.e. for p[1,2]), O_(M) is aligned to the origin O₂ of the die D[2]. As long as the stepping distance D_(y) along the y direction is twice as much as the die displacement d_(y) between D[2] and D[1], i.e. D_(y)=2d_(y), the data-arrays p[1,2] of dice D[1]-D[4] are equal to m(2), m(1), m(4), m(3), respectively. At the 3^(rd) printing step (i.e. for p[2,1]), O_(M) is aligned to the origin O₃ of the die D[3]. As long as the stepping distance D_(x) along the x direction is twice as much as the die displacement d_(x) between D[3] and D[1], i.e. D_(x)=2d_(x), the data-arrays p[2,1] of dice D[1]-D[4] are equal to m(3), m(4), m(1), m(2), respectively. At the 4^(th) printing step (i.e. for p[2,2]), O_(M) is aligned to the origin ) O₄ of the die D[4]. As long as D_(y)=2d_(y) and D_(x)=2d_(x), the data-arrays p[2,2] of dice D[1]-D[4] are equal to m(4), m(3), m(2), m(1), respectively.

In sum, for the dice D[1]-D[4] of FIG. 15, their data-array sequences can be expressed as:

S _(D[1])=(p _(D[1])[1,1], p _(D[1])[1,2], p _(D[1])[2,1], p _(D[1])[2,2])=(m(1), m(2), m(3), m(4));

S _(D[2])=(p _(D[2])[1,1], p _(D[2])[1,2], p _(D[2])[2,1], p _(D[2])[2,2])=(m(2), m(1), m(4), m(3));

S _(D[3])=(p _(D[3])[1,1], p _(D[3])[1,2], p _(D[3])[2,1], p _(D[3])[2,2])=(m(3), m(4), m(1), m(2));

S _(D[4])=(p _(D[4])[1,1], p _(D[4])[1,2], p _(D[4])[2,1], p _(D[4])[2,2])=(m(4), m(3), m(2), m(1));

with {S_(D[1])}={S_(D[2])}={S_(D[3])}={S_(D[4])}, but S_(D[1])≠S_(D[2])≠S_(D[3])≠S_(D[4]). From these expressions, it can be observed that all 3D-oP dice D[1 ]-D[4] have the same data-array set, but can have different data-array sequences.

FIG. 17 is a circuit block diagram of the preferred x2x2 3D-oP 18. The input-address decoder 20I and output buffer 200 are both shown in this figure. They have the same functions are those of FIGS. 1 3A-1 3B. The 3-D stack 16 stores four data-arrays p[1,1]-p[2,2]. The configurable-I/O means 24 changes the value of the external input address 28 and/or the internal output 26 based on the sequence-related information: for the die D[1], no change is made; for the die D[2], the bit-order within each output-group (e.g. 21) in the output buffer 200 is reversed; for the die D[3], the most significant bit of the internal input address 26 is inverted from that of the external input address 28; for the die D[4], the most significant bit of the internal input address 26 is inverted from that of the external input address 28, and the bit-order within each output-group (e.g. 21) in the output buffer 200 is reversed.

The technique of offset-printing can not only be applied to the data-coding layers in a single die, but also be applied to the data-coding layers in a group of dice. Accordingly, the present invention discloses a three-dimensional 3D-oP-based memory package (3D²-oP). The 3D²-oP package is often released in the form of a memory card. Similarly, the mask-patterns for a plurality of memory levels/bits-in-a-cell of a plurality of dice are merged onto a multi-region data-mask. At different printing steps, the wafer is offset by different values with respect to the data-mask. Accordingly, various data-patterns from the same data-mask are printed into data-coding layers for different memory levels/bits-in-a-cell of different dice in the 3D²-oP package.

FIG. 18 illustrates a preferred x3x3x1 3D²-oP package 38. Here, xKxMxn 3D²-oP package denotes a memory package comprising K vertically stacked xMxn 3D-oP dice. In this example, it comprises three 3D-oP dice C₁-C₃. They are vertically stacked on an interposer substrate 30 and form a 3D-oP stack 36. Bond wires 32 connect dice C₁-C₃ to the substrate 30. To improve its data-security, the 3D²-oP package 38 is preferably filled with a molding compound 34.

FIG. 19 is a circuit block diagram of the preferred 3D²-oP package 38. Its 3D-oP stack 36 stores nine data-arrays, i.e. three data-arrays p[1]-p[3] for each of the dice C₁-C₃. It also comprises a configurable-I/O means 24, which has a similar function as that of FIG. 17. The configurable-I/O means 24 could be located in the 3D-oP die and/or the controller die.

The left side of FIG. 20 illustrates the multi-region data-mask 8 used for the preferred 3D²-oP package 38. It comprises nine data-mask regions whose data-arrays are m(1)-m(9). The origin of the multi-region data-mask 8 is O_(M). The right side of FIG. 20 illustrates all dice D[1]-D[9] in an exposure field E on a 3D-oP wafer 9. The origins for dice D[1]-D[3] are O₁-O₃, respectively.

FIG. 21 is a table listing the data-array for each data-coding layer of each dice after each printing step for the preferred 3D²-oP package 38. Its third column lists the origin of the die to which OM is aligned at each printing step. Three printing steps are required for three data-coding layers. At the 1^(st) printing step (i.e. for p[1]), O_(M) is aligned to the origin O₁ of the die D[1] and the data-arrays p[1] of dice D[1]-D[9] are equal to m(1)-m(9), respectively. At the 2^(nd) printing step (i.e. for p[2]), O_(M) is aligned to the origin O₂ of the die D[2]. As long as D_(y)=3d_(y1)=3d_(y2), the data-arrays p[2] of dice D[1]-D[9] are equal to m(3), m(1), m(2), m(6), m(4), m(5), m(9), m(7), m(8), respectively. At the 3^(rd) printing step (i.e. for p[3]), O_(M) is aligned to the origin O₃ of the die D[3]. As long as D_(y)=3d_(y1)=3d_(y1)=3d_(y2), the data-arrays p[3] of dice D[1]-D[9] are equal to m(2), m(3), m(1), m(5), m(6), m(4), m(8), m(9), m(7), respectively.

FIG. 22 is a table listing three 3D²-oP packages M[1]-M[3] formed from nine dice D[1]-D[9] of FIG. 20: the 3D²-oP package M[1] comprises dice D[1], D[4], D[7]; the 3D²-oP package M[2] comprises dice D[2], D[5], D[8]; and the 3D²-oP package M[3] comprises dice D[3], D[6], D[9]. Because these packages M[1]-M[3] are offset-printed with the same data-mask 8, they belong to the same 3D²-oP batch.

In sum, for the 3D²-oP packages M[1]-M[3] of FIG. 20, their data-array sequences can be expressed as:

S _(M[1])=(S _(D[1]) , S _(D[4]) , S _(D[7]))=(m(1), m(3), m(2); m(4), m(6), m(5); m(7), m(9), m(8));

S _(M[2])=(S _(D[2]) , S _(D[5]) , S _(D[8]))=(m(2), m(1), m(3); m(5), m(4), m(6); m(8), m(7), m(9));

S _(M[3])=(S _(D[3]) , S _(D[6]) , S _(D[9]))=(m(3), m(1), m(1); m(6), m(5), m(4); m(9), m(8), m(7));

with {S_(M[1])}={S_(M[2])}={S_(M[3])}, but S_(M[1])≠S_(M[2])≠S_(M[3]). From these expressions, it can be observed that all 3D²-oP packages M[1]-M[3] have the same data-array set, but can have different data-array sequences.

While illustrative embodiments have been shown and described, it would be apparent to those skilled in the art that may more modifications than that have been mentioned above are possible without departing from the inventive concepts set forth therein. For example, besides photo-lithography, offset-printing can be applied to imprint-lithography. The invention, therefore, is not to be limited except in the spirit of the appended claims. 

1. A three-dimensional offset-printed memory (3D-oP), comprising: a semiconductor substrate; a plurality of vertically stacked memory levels stacked above and coupled to said substrate, each of said memory levels comprising at least a data-coding layer, whose pattern represents a data-array; a configurable-input/output (I/O) means for configuring the input and/or output of said memory based on the data-array sequence in said memory.
 2. The 3D-oP according to claim 1, wherein said configurable-I/O means further comprises a storage means for storing the information related to the data-array sequence.
 3. The 3D-oP according to claim 2, wherein said storage means is a non-volatile writable memory.
 4. The 3D-oP according to claim 1, wherein said configurable-I/O means changes the input of said 3D-oP based on said data-array sequence.
 5. The 3D-oP according to claim 1, wherein said configurable-I/O means changes the output of said 3D-oP based on said data-array sequence.
 6. The 3D-oP according to claim 1 belonging to a three-dimensional memory package, wherein said memory package comprises a plurality of vertically stacked 3D-oP dice.
 7. A three-dimensional offset-printed memory (3D-oP), comprising: a semiconductor substrate; a plurality of vertically stacked memory levels stacked above and coupled to said substrate, each of said memory levels comprising at least a data-coding layer, whose pattern represents a data-array; wherein all devices in a same 3D-oP batch with said 3D-oP have a same data-array set; and at least two devices in said batch have different data-array sequences.
 8. The 3D-oP according to claim 7, further comprising a configurable-I/O means a configurable-input/output (I/O) means for configuring the input and/or output of said memory based on the data-array sequence in said memory.
 9. The 3D-oP according to claim 8, wherein said configurable-I/O means further comprises a storage means for storing the information related to the data-array sequence.
 10. The 3D-oP according to claim 9, wherein said storage means is a non-volatile writable memory.
 11. The 3D-oP according to claim 7, wherein said 3D-oP batch further includes first and second memory devices: said first memory device comprises first and second memory levels, said second memory level stacked above said first memory level, said first memory level storing a first data-array, said second memory level storing a second data-array; and said second memory device comprises third and fourth memory levels, said fourth memory level stacked above said third memory level, said third memory level storing said second data-array, said fourth memory level storing said first data-array.
 12. The 3D-oP according to claim 11, wherein each of said first and second memory devices further comprises a configurable-I/O means for changing the input of said memory device based on the data-array sequence.
 13. The 3D-oP according to claim 7, wherein said 3D-oP batch further includes first and second memory devices: said first memory device comprises a first memory level, said first memory level storing first and second data-arrays, wherein said second data-array is located above said first data-array; and said second memory device comprises a second memory level, said second memory level storing said first and second data-arrays, wherein said first data-array is located above said second data-array.
 14. The 3D-oP according to claim 13, wherein said each of said first and second memory devices further comprises a configurable-I/O means for changing the output of said memory device based on the data-array sequence.
 15. The 3D-oP according to claim 7 belonging to a three-dimensional memory package, wherein said memory package comprises a plurality of vertically stacked 3D-oP dice.
 16. A method of making a three-dimensional offset-printed memory (3D-oP), comprising the steps of: 1) forming a substrate circuit on a semiconductor substrate; 2) forming a first memory level above said substrate, said memory level comprising a first data-coding layer, wherein said substrate is aligned to a first position on a data-mask when forming the data-pattern in said first data-coding layer; 3) forming a second data-coding layer above said first data-coding layer, wherein said substrate is aligned to a second position on said data-mask when forming the data-pattern in said second data-coding layer; wherein, said second position is offset by a distance from said first position.
 17. The method according to claim 16, wherein the total number of data-masks is fewer than the total number of data-coding layers.
 18. The method according to claim 16, wherein said second data-coding layer is formed in a second memory level, said second memory level stacked above said first memory level.
 19. The method according to claim 16, wherein said second data-coding layer is formed in said first memory level.
 20. The method according to claim 16, wherein said step of forming the data-pattern uses photo-lithography or imprint-lithography. 